﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Client.Request.Trade
{
    /// <summary>
    /// 转账申请请求
    /// </summary>
    public class TransfersApplyRequest
    {
        /// <summary>
        /// 申请单号
        /// </summary>
        [Required(ErrorMessage = "申请号不能为空")]
        [StringLength(maximumLength: 32, ErrorMessage = "申请号长度不能超过32个字符")]
        public string ApplyNo { get; set; }

        /// <summary>
        /// 申请金额
        /// </summary>
        [Range(0.01, (double)decimal.MaxValue, ErrorMessage = "申请金额必须大于零")]
        public decimal ApplyMoney { get; set; }

        /// <summary>
        /// 账号
        /// </summary>
        [Required(ErrorMessage = "账号或用户票据不能为空")]
        [StringLength(maximumLength: 255, ErrorMessage = "账号或用户票据最高长度为255个字符")]
        public string AccountNo { get; set; }

        /// <summary>
        /// 收款人户名或真实姓名
        /// </summary>
       // [Required(ErrorMessage = "收款人真实名称不能为空")]
        [StringLength(maximumLength: 255, ErrorMessage = "收款人真实名称最高长度为255个字符")]
        public string AccountName { get; set; }

        /// <summary>
        /// 收款人银行代码
        /// </summary>
        public string BankNo { get; set; }

        /// <summary>
        /// 开户行名称
        /// </summary>
        public string OpenBankName { get; set; }

        /// <summary>
        /// 省市
        /// </summary>
        public string ProvinceCity { get; set; }

        /// <summary>
        /// 交易通道Id
        /// </summary>
        [Required(ErrorMessage = "转账通道不能为空")]
        public string ChannelId { get; set; }

        /// <summary>
        /// 客户端Ip
        /// </summary>
        [Required(ErrorMessage = "客户端Ip不能为空")]
        public string ClientIp { get; set; }

        /// <summary>
        /// 摘要
        /// </summary>
        [Required(ErrorMessage = "摘要不能为空")]
        [StringLength(maximumLength: 255, ErrorMessage = "摘要最高长度为255个字符")]
        public string Summary { get; set; }

        /// <summary>
        /// 通知 Post Url
        /// </summary>
        [Required(ErrorMessage = "NotifyUrl 不能为空")]
        public string NotifyUrl { get; set; }

        /// <summary>
        /// 扩展参数
        /// </summary>        
        public string ExtraParam { get; set; }
    }
}
